//app.js
App({
  data: {
    im: {
      sdkAppID: 1400166076, // 用户标识接入 SDK 的应用 ID，必填
      accountType: 36862, // 帐号体系集成中的 accountType，必填
      accountMode: 0, //帐号模式，0 - 独立模式 1 - 托管模式
      imId: null, // 用户的 id
      imName: null, // 用户的 im 名称
      imAvatarUrl: null, // 用户的 im 头像 url
      userSig: null // 用户通过 imId 向后台申请的签名值 sig
    }
  },
  onLaunch: function () {
    // 展示本地存储能力
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    wx.getSystemInfo({
      success: res => {
        this.globalData.screenHeight = res.screenHeight;
        this.globalData.screenWidth = res.screenWidth;
      }
    });
    this.updateVersion();

    

  },
  globalData: {
    userInfo: null,
    url: "https://tihe-api.adxing.com/api",
    baseUrl: "https://wx.tihe-china.com/qsp",
    // baseUrl: "https://yhw666.mynatapp.cc",
    code: "",
    token: "",
    accessToken: "",
    imSign: "", // IM签名
    screenHeight: "",
    screenWidth: "",
    locationCity: "", // 定位城市
    chooseCity: "", // 选择城市
    latitude: "",
    longitude: "",
    uploadType: "",   // 上传图片类型（上屏或者个人信息）
    uploadImgUrl: "", // 上传的图片
    resultImgUrl: "", // 上屏最终生成的图片
    detail: {}, // 列表内用户的详情
    chooseDuring: {}, // 选择的上屏时长
    chooseCinema: "", // 选择的影院
    orderData: {},
    payData: {},
    chatToUid: "", // 聊天对象uid
    myDetail: {}, // 当前用户信息
    chatDetail: {}, // 聊天对象的信息
    launchType: 1,
    playFrequency: 1, // 播放次数
  },

  // 全局错误提示方法
  showError(msg, fn) {
    wx.showToast({
      title: msg,
      icon: 'none',
      duration: 1500,
      complete: fn && fn()
    })
  },

  // 计算年龄
  countAge(str) {
    var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
    if (r == null) return false;
    var d = new Date(r[1], r[3] - 1, r[4]);
    if (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]) {
      var Y = new Date().getFullYear();
      return ((Y - r[1]) + "岁");
    }
    return ("输入的日期格式错误！");
  },

  // 根据生日的月份和日期，计算星座。
  getAstro(m, d) {
    return "魔羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯".substr(m * 2 - (d < "102223444433".charAt(m - 1) - -19) * 2, 2);
  },


  // 获取小程序更新
  updateVersion() {
    if (wx.canIUse('getUpdateManager')) {
      const updateManager = wx.getUpdateManager()
      updateManager.onCheckForUpdate(function (res) {
        // 请求完新版本信息的回调
        if (res.hasUpdate) {
          updateManager.onUpdateReady(function () {
            wx.showModal({
              title: '更新提示',
              content: '新版本已经准备好，是否重启应用？',
              success: function (res) {
                if (res.confirm) {
                  // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                  updateManager.applyUpdate()
                }
              }
            })
          })
          updateManager.onUpdateFailed(function () {
            // 新的版本下载失败
            wx.showModal({
              title: '已经有新版本了哟~',
              content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
            })
          })
        }
      })
    } else {
      // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
      wx.showModal({
        title: '提示',
        content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
      })
    }
  },

  // 获取当前时间
  getCurrentDate: function (format, now) {
    // var now = new Date(); 
    var year = now.getFullYear(); //得到年份	  
    var month = now.getMonth();//得到月份	  
    var date = now.getDate();//得到日期	  
    var day = now.getDay();//得到周几	  
    var hour = now.getHours();//得到小时	  
    var minu = now.getMinutes();//得到分钟	  
    var sec = now.getSeconds();//得到秒	  
    month = month + 1;
    if (month < 10) month = "0" + month;
    if (date < 10) date = "0" + date;
    if (hour < 10) hour = "0" + hour;
    if (minu < 10) minu = "0" + minu;
    if (sec < 10) sec = "0" + sec;
    var time = "";	  //精确到天	  
    if (format == 1) {
      time = year + "-" + month + "-" + date;
    } else if (format == 2) {	//精确到分	
      time = year + "-" + month + "-" + date + " " + hour + ":" + minu + ":" + sec;
    }
    return time;
  },

  // 字符串转base64
  changeToBase64: function (input) {
    var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var output = "";
    var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
    var i = 0;
    input = this._utf8_encode(input);
    while (i < input.length) {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);
      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;
      if (isNaN(chr2)) {
        enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
        enc4 = 64;
      }
      output = output + _keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4);
    }
    return output;
  },
  _utf8_encode: function (string) {
    string = string.replace(/\r\n/g, "\n");
    var utftext = "";
    for (var n = 0; n < string.length; n++) {
      var c = string.charCodeAt(n);
      if (c < 128) {
        utftext += String.fromCharCode(c);
      } else if ((c > 127) && (c < 2048)) {
        utftext += String.fromCharCode((c >> 6) | 192);
        utftext += String.fromCharCode((c & 63) | 128);
      } else {
        utftext += String.fromCharCode((c >> 12) | 224);
        utftext += String.fromCharCode(((c >> 6) & 63) | 128);
        utftext += String.fromCharCode((c & 63) | 128);
      }
    }
    return utftext;
  }, 
  

  /**
   * 初始化 im 参数，返回成功回调
   */
  initImParams: function (cbOk) {
    // console.log(cbOk)
    var that = this
    // 登录 初始化 im 参数
    // 注意：如果首次使用，后台需要创建【腾讯 im】账号
    var header = { "Content-Type": "application/x-www-form-urlencoded" };
    // var data = { "identifier": res.data.openid }
    var data = { "identifier": that.globalData.myDetail.open_id }
    // that.data.im.imId = res.data.openid // ocGnM4nO9kZf6WANSo7H5GGBZVk4
    that.data.im.imId = that.globalData.myDetail.open_id


    // 获取IM签名
    wx.request({
      url: that.globalData.baseUrl + '/tim/getSigByOpenId', header: header, method: "POST",
      data: {
        uid: that.globalData.myDetail.uid
      },
      success: res => {
        console.log(res)
        if (res.data) {
          that.globalData.imSign = res.data;
          // 初始化 im 数据 初始化完毕再返回回调
          that.data.im.userSig = res.data
          that.data.im.imName = that.globalData.myDetail.name
          that.data.im.imAvatarUrl = that.globalData.myDetail.avatarUrl
          cbOk()
        }
      },
      fail: res => {
        console.log(res)
      }
    })
    // wx.login({
    //   success: res =>{
    //     var appid = 'wxcc92c2e00a76c449'
    //     var secret = '531bb232d628d2b6edfdbee49a945581'
    //     var uri = '?appid=' + appid + '&secret=' + secret + '&js_code=' + res.code + '&grant_type=authorization_code'
    //     var url = 'https://api.weixin.qq.com/sns/jscode2session' + uri
    //     wx.request({
    //       url: url, method: 'GET', success: res => {
    //         console.log(res.data.openid)
    //         // 通过 openid 获取【腾讯 im】签名值
            



    //         // wx.request({
    //         //   url: generatedSigUrl, header: header, method: "POST", data: data, success: res => {
    //         //     console.log(res)
    //         //     // 初始化 im 数据 初始化完毕再返回回调
    //         //     that.data.im.userSig = res.data
    //         //     // 初始化 im 数据
    //         //     that.data.im.imName = '鸭鸭'
    //         //     that.data.im.imAvatarUrl = 'https://wx.qlogo.cn/mmopen/vi_32/vcFFe9Kg2Q0YfwQuaib7sHlSI65nKraL7ibuQvq1icbkrumuWDlbSM51PShPVoialzlpkiaKudLtLia0JLeWUmFprMjg/132'

    //         //     cbOk()
    //         //   }
    //         // })
    //       }
    //     })
    //   }
    // })

  }
  

})